'''
华为机考的NC61题，
要求的输出坐标是从1开始的，记得要+1
'''

from typing import List

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        hashtable = dict() # 创建一个空的哈希表
        print(hashtable)
        for i, num in enumerate(nums):
            if target - num in hashtable:
                '''
                一开始哈希表是空的，所以不会执行
                等哈希表不为空了，
                一旦在表中找到了这个key: target - num,
                就返回对应的坐标，退出程序，效率比较高。
                '''
                return [hashtable[target - num], i]
            hashtable[num] = i # 往表中添加元素，key为nums的值，value为这个值对应的下标
            # print(nums[i] == num)
        return []

nums = [1,2,3,4,5,6]
target = 7

s = Solution()
result = s.twoSum(nums, target)
print(result)